<?php

class Application_Model_Search
{
    function dropBackWords($word) {
        //тут мы обрабатываем одно слово
	$reg = "/(ый|ой|ая|ое|ые|ому|а|о|у|е|ого|ему|и|ство|ых|ох|ия|ий|ь|я|он|ют|ат)$/i"; 
        ////данная регулярная функциях будет искать совпадения окончаний
	$word = preg_replace($reg,'',$word); //убиваем окончания
	return $word;
    }
    
    function stopWords($query) { //тут мы обрабатываем весь поисковый запрос
	$reg = "/\s(под|много|что|когда|где|или|которые|поэтому|все|будем|как)\s/im"; //данная регулярка отрежет все стоп-слова отбитые пробелами
	$query = preg_replace($reg,' ',$query); //убиваем стоп-слова
	return $query;
    }
    
    function explodeQuery($query) { 	//функция вызова поисковой строки
	$query = $this->stopWords($query); 	//используем написанную нами ранее функцию для удаления стоп-слов
	$words = explode(" ",$query); 	//разбиваем поисковый запрос на слова через пробел и заносим все слова в массив
	$i = 0; 						//устанавливаем начало массива в 0, помним что нумерация в массивах начинается с 0
	$keywords = ""; 				//создаем пустой массив
	foreach ($words as $word) { 	//в цикле для массива words создаем элемент word
		$word = trim($word);
                if($word==""){unset($word);}
		else if (strlen($word)>8) {
				$keywords[$i]=$this->dropBackWords($word);	//наша функция чистки окончаний для слов длинее 8 символов и занесение их в созданный нами массив
				$i++;								//наращиваем значение i для того чтобы перейти к следующему элементу
			}
			else {
                $keywords[$i]=$word; 				//если короче 8 символов то просто добавляем в массив
                $i++;
		}
	}
	return $keywords; //возвращаем полученный массив
    }
}

